package com.briup.oagg.model.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.briup.oagg.model.bean.basic.ModelTrainConfig;
import com.briup.oagg.model.bean.op.TaskResult;
import com.briup.oagg.model.web.vm.ModelTrainConfigAddVM;
import com.briup.oagg.model.web.vm.ModelTrainConfigVM;

import java.util.List;
import java.util.Map;

/**
 * 模型训练配置信息业务逻辑接口
 *
 * @author briup
 */
public interface IModelTrainConfigService extends IService<ModelTrainConfig>  {

    /**
     * 新增训练结果
     * @param result
     */
    void addTrainResult(TaskResult result);

    /**
     * 根据模型训练编号修改模型发布状态
     * @param trainId           训练编号
     * @param publishStatus     发布状态
     */
    void updatePublishStatus(String trainId, Integer publishStatus);

    /**
     * 新增模型训练信息
     * @param vm
     */
    void addModelTrain(ModelTrainConfigAddVM vm);

    /**
     * 根据模型编号查询对应的模型训练配置信息
     * @param modelId 模型编号
     */
    List<ModelTrainConfigVM> findByCondition(String modelType,String modelId);

    /**
     * 根据模型训练配置编号查询对应的模型训练配置信息
     * @param trainId 训练编号
     * @return 训练配置信息
     */
    ModelTrainConfigVM findByTrainId(String trainId);

    /**
     * 开启模型训练
     * @param trainId   模型训练配置编号
     * @param dataList  训练数据集信息
     */
    void beginTrain(String trainId, List<Map<String, Object>> dataList);

    /**
     * 根据训练编号删除指定训练
     * @param trainId 训练编号
     */
    void deleteByTrainId(String trainId);
}
